import axios from 'axios'

//创建axios实例
const request = axios.create({
    baseURL: import.meta.env.VITE_APP_BASE_API,
    timeout: 10000,
})

//请求拦截器
request.interceptors.request.use((config) => {
    return config
})

/**请求错误状态*/
const ErrorMessage: Record<number | 'default', string> = {
    400: '请求错误',
    401: '请求未授权或授权已经过期，请重新登录',
    403: '没有访问权限',
    404: '请求错误，未找到资源',
    405: '请求方法未允许',
    408: '请求超时',
    500: '服务器内部错误',
    501: '服务未实现',
    502: '网络错误',
    503: '服务不可用',
    504: '网络超时',
    505: 'HTTP版本不受支持',
    default: '未知错误',
}
//响应拦截器
request.interceptors.response.use(
    (response) => {
        return response.data
    },
    (error) => {
        // 处理网络错误
        const message = ErrorMessage[error.response.status] || ErrorMessage.default
        console.error('网络请求错误，原因：', message)
        return Promise.reject(error)
    },
)
export default request
